function convertToUpperCase(name) {
    var a = name.toUpperCase();
    return a;
}
var result = convertToUpperCase("zs");
console.log(result);
var isDone = true;
var decimal = 6;
var name1 = "TypeScript";
var list1 = [1, 2, 3];
var list2 = ["a", "b", "c"];
var x = ["hello", 10];
// ‌enum（枚举类型）‌：为一组数值赋予友好名称，默认从 0 开始编号，也可手动赋值
var Color;
(function (Color) {
    Color[Color["Red"] = 0] = "Red";
    Color[Color["Green"] = 1] = "Green";
    Color[Color["Blue"] = 2] = "Blue";
})(Color || (Color = {}));
var c = Color.Green; // 值为 1
// ‌any（任意类型）‌：表示任意类型，关闭类型检查，可赋值为任何类型。
var notSure = 4;
notSure = "maybe a string";
notSure = false;
// ‌void（空类型）‌：表示没有返回值的函数，或只能赋值 undefined 和 null 的变量。
function warnUser() {
    console.log("This is a warning");
}
var unusable = undefined;
// ‌null 和 undefined‌：分别表示空值和未定义，默认是所有类型的子类型。
var u = undefined;
var n = null;
// ‌never（永不存在类型）‌：表示永不存在的值的类型，如抛出异常或无限循环的函数返回值。
function error(message) {
    throw new Error(message);
}
// ‌object（对象类型）‌：表示非原始类型（即除 number、string、boolean、symbol、null 或 undefined 之外的类型）。
var obj = { name: "John" };
// ‌symbol（符号类型）‌：表示唯一且不可变的值，用于创建对象的唯一属性名。
let sym1 = Symbol("key");
let sym2 = Symbol("key");
console.log(sym1 === sym2); // false
// ‌联合类型（Union Types）‌：表示取值可以为多种类型中的一种，使用 | 分隔。
var value;
value = "hello"; // 合法
value = 42; // 合法
var dir1 = "up"; // 只能取指定值
// =============  13. 类与接口  =============
var Point = /** @class */ (function () {
    function Point() {
    }
    return Point;
}());
var pt = new Point();
var numStack = { push: function () { }, pop: function () { return 0; } };
var usd = 10;
// =============  17. 断言签名  =============
function assert(val) {
    if (typeof val !== 'string')
        throw 0;
}
var dir = 1 /* Dir.Up */;
// =============  22. 抽象构造签名  =============
var Animal = /** @class */ (function () {
    function Animal() {
    }
    return Animal;
}());
// =============  23. satisfies（TS4.9+）  =============
var cfg = {
    port: 3000,
    host: '0.0.0.0'
};
